
Partial Public Class FrmChequesPropios
    Inherits System.Web.UI.Page
    Public Banco As CapaDeNegocios.nBanco = New CapaDeNegocios.nBanco
    Public Cuenta As CapaDeNegocios.nCuenta = New CapaDeNegocios.nCuenta
    Public Chequera As CapaDeNegocios.nChequera = New CapaDeNegocios.nChequera
    Public ChequePropio As CapaDeNegocios.nChequesPropios = New CapaDeNegocios.nChequesPropios
    Public Comprobacion As CapaDeNegocios.nComprobaciones = New CapaDeNegocios.nComprobaciones
    Public Proveedor As CapaDeNegocios.nProveedor = New CapaDeNegocios.nProveedor
    Public oIdProve As Integer
    Public oAnombreDe As String

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Session("Login") = "Anonimo" Then
            Response.Redirect("/")
        End If
        If Not Page.IsPostBack Then
            Inicio()
        End If
    End Sub

    Sub Inicio()
        LLenarComboBanco()
        Me.CboBanco.SelectedValue = -1
        Me.CboChequera.SelectedValue = -1
        Me.CboCuenta.SelectedValue = -1

        Me.CboCuenta.Enabled = False
        Me.CboChequera.Enabled = False
        Me.CboProveedor.Visible = False

        Me.TxtFechaVencimiento.Text = ""
        Me.TxtImporte.Text = ""
        Me.TxtNumeroCheque.Text = ""
        Me.TxtObservaciones.Text = ""

        Me.TxtFechaVencimiento.ReadOnly = False
        Me.TxtImporte.ReadOnly = False
        Me.TxtNumeroCheque.ReadOnly = True
        Me.TxtObservaciones.ReadOnly = False
        Me.TxtChequeNombre.ReadOnly = False

        Me.OpcChequeNombre.Enabled = True
        LLenarProveedor()
        Me.TxtChequeNombre.Visible = False

        LblFechaEmision.Visible = False
        LblFechaEmisionNombre.Visible = False
        LblFechaEmisionNombre.Text = ""

        LnkGuardar.Visible = True
        LnkBuscar.Visible = True
        LnkCancelar.Text = "Cancelar"
        LnkCancelar.Visible = False
        LnkEliminar.Visible = False
        OpcChequeNombre.Enabled = True
        LlenarGridChequera()


    End Sub

    Sub LLenarComboBanco()
        CboBanco.Items.Clear()
        CboBanco.Items.Add(New ListItem("Seleccione un Banco", -1))

        CboBanco.DataSource = Banco.ListarBanco(0, "", "")
        CboBanco.DataTextField = "Denominacion"
        CboBanco.DataValueField = "CodigoBanco"
        CboBanco.DataBind()
    End Sub

    Sub CalcularNroCheque()
        TxtNumeroCheque.Text = ChequePropio.ObtenerNumero(CboChequera.SelectedValue)
    End Sub

    Sub LLenarProveedor()
        CboProveedor.Items.Clear()
        CboProveedor.Items.Add(New ListItem("Seleccione un Tipo de Empresa", -1))
        CboProveedor.DataSource = Proveedor.Listar("", "", "", "", "", "", "", "")
        CboProveedor.DataTextField = "RazonSocial"
        CboProveedor.DataValueField = "CodigoProv"
        CboProveedor.DataBind()
    End Sub

    Protected Sub LnkCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LnkCancelar.Click
        Inicio()
    End Sub

    Private Sub GridCheques_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridCheques.PageIndexChanging
        GridCheques.PageIndex = e.NewPageIndex
        REM recargar grid
    End Sub

    Protected Sub LnkGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LnkGuardar.Click

        LblError.Visible = False
        LblError.Text = ""

        Select Case OpcChequeNombre.SelectedValue
            Case Is = 1 'Cliente
                oIdProve = CboProveedor.SelectedValue
                oAnombreDe = CboProveedor.SelectedItem.Text
            Case Is = 2 'Otro
                oIdProve = 0
                oAnombreDe = TxtChequeNombre.Text
            Case Else
                oIdProve = 0
                oAnombreDe = ""
        End Select


        If CboChequera.SelectedValue = -1 Then
            LblError.Visible = True
            LblError.Text = "Seleccione una Chequera"
            CboChequera.Focus()
            Exit Sub
        End If
        If Comprobacion.FN_Vacio(TxtImporte.Text) = True Then
            LblError.Visible = True
            LblError.Text = "Ingrese un importe"
            TxtImporte.Focus()
            Exit Sub
        Else

            If Comprobacion.FN_EsNumero(TxtImporte.Text) = False Then
                LblError.Visible = True
                LblError.Text = "El Valor de Importe Correcto"
                TxtImporte.Focus()
                Exit Sub
            End If
        End If
        If CDate(TxtFechaVencimiento.Text) < Now Then
            LblError.Visible = True
            LblError.Text = "La Fecha debe ser mayor a Hoy"
            CboChequera.Focus()
        End If

        ChequePropio.InsertarChequePropio(TxtNumeroCheque.Text, _
                                        CboChequera.SelectedValue, _
                                        oIdProve, _
                                        TxtImporte.Text, _
                                        TxtFechaVencimiento.Text, _
                                        "", _
                                        TxtObservaciones.Text, _
                                        oAnombreDe, _
                                        "")
        Inicio()
    End Sub

    Protected Sub CboChequera_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CboChequera.SelectedIndexChanged
        CalcularNroCheque()
    End Sub

    Protected Sub CboBanco_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CboBanco.SelectedIndexChanged
        CboCuenta.Items.Clear()
        CboCuenta.Items.Add(New ListItem("Seleccione Una Cuenta", -1))

        CboCuenta.DataSource = Cuenta.ListarCuenta(0, CboBanco.SelectedValue, "Cuenta Corriente", 0, "")
        CboCuenta.DataTextField = "NumeroCuenta"
        CboCuenta.DataValueField = "CodigoCuenta"
        CboCuenta.DataBind()

        CboCuenta.Focus()
        CboCuenta.Enabled = True

    End Sub

    Protected Sub CboCuenta_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CboCuenta.SelectedIndexChanged
        CboChequera.Items.Clear()
        CboChequera.Items.Add(New ListItem("Seleccione Rango de Chequera", -1))

        CboChequera.DataSource = Chequera.ListarChequeras(0, 0, 0, CboCuenta.SelectedValue)
        CboChequera.DataTextField = "Rango"
        CboChequera.DataValueField = "CodigoChequera"
        CboChequera.DataBind()

        CboChequera.Focus()
        CboChequera.Enabled = True
    End Sub

    Protected Sub OpcChequeNombre_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpcChequeNombre.SelectedIndexChanged
        Select Case OpcChequeNombre.SelectedValue
            Case Is = 1 'Otro
                Me.TxtChequeNombre.Text = ""
                Me.TxtChequeNombre.Visible = False
                CboProveedor.Visible = True
                Me.CboProveedor.SelectedValue = -1
            Case Is = 2 'Cliente
                Me.TxtChequeNombre.Text = ""
                Me.TxtChequeNombre.Visible = True
                Me.CboProveedor.Visible = False
                Me.CboProveedor.SelectedValue = -1
        End Select
    End Sub

    Sub LlenarGridChequera()

        GridCheques.DataSource = ChequePropio.ListarChequePropios("", "", "", "", "", "", "", "", "", "")
        GridCheques.DataBind()

    End Sub

    Protected Sub LnkEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LnkEliminar.Click
        If ChequePropio.EliminarChequePropio(Me.TxtNumeroCheque.Text, Me.TxtObservaciones.Text) = True Then
            Me.Response.Write("<script languaje='javascript'>window.alert('El Cheque Numero " & TxtNumeroCheque.Text & " fue Anulado')</script>")
        End If

    End Sub

    Private Sub GridCheques_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridCheques.RowCommand
        If e.CommandName = "Select" Then
            Me.TxtNumeroCheque.Text = e.CommandSource.parent.FindControl("LblNumeroCheque").text
            Me.TxtImporte.Text = e.CommandSource.parent.FindControl("LblImporte").text
            Me.TxtFechaVencimiento.Text = e.CommandSource.parent.FindControl("LblFVencimiento").text
            Me.LblFechaEmisionNombre.Text = e.CommandSource.parent.FindControl("LblFEmision").text
            Me.TxtObservaciones.Text = e.CommandSource.parent.FindControl("LblObservacion").text
            Me.TxtChequeNombre.Text = e.CommandSource.parent.FindControl("LblANombreDe").text

            Me.OpcChequeNombre.SelectedIndex = 1
            Me.TxtChequeNombre.Visible = True

            LnkGuardar.Visible = False
            LnkBuscar.Visible = False

            LnkCancelar.Visible = True
            LnkCancelar.Text = "Nuevo"
            LnkEliminar.Visible = True

            LblFechaEmision.Visible = True
            LblFechaEmisionNombre.Visible = True
            Me.TxtFechaVencimiento.ReadOnly = True
            Me.TxtImporte.ReadOnly = True
            Me.TxtNumeroCheque.ReadOnly = True
            Me.TxtObservaciones.ReadOnly = True
            Me.TxtChequeNombre.ReadOnly = True
            OpcChequeNombre.Enabled = False
        End If

    End Sub

    Protected Sub GridCheques_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GridCheques.SelectedIndexChanged

    End Sub
End Class